import { chromium, BrowserContext } from 'playwright';
import fs from 'node:fs/promises';
import path from 'node:path';

async function main() {
  const storagePath = path.resolve('state/xhs-storage.json');
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();

  // TODO: 替换为小红书网页版登录入口
  await page.goto('https://www.xiaohongshu.com/explore');

  console.log('\n请在弹出的浏览器中完成一次性登录，小红书登录成功后我会保存会话…');

  // 等待登录成功：可根据“个人主页入口/头像/发笔记按钮”等元素判断
  // 这里用一个较宽松的等待：登录后页面可正常加载并出现导航栏
  await page.waitForLoadState('networkidle');

  // 等待显式标志（可根据你的页面改成更精确的选择器）
  // 例如：await page.waitForSelector('a[href*="/user/profile"]', { timeout: 120_000 });

  // 持久化 storageState
  await context.storageState({ path: storagePath });
  console.log(`\n已保存会话到: ${storagePath}`);

  await browser.close();
}

main().catch((err) => {
  console.error(err);
  process.exit(1);
});
